The feature-interaction problem arises from the incremental, feature-by-feature, extension of telecommunications system functionality. As new features such as call forwarding, call waiting, or three-way calling have been added to telecommunication systems, it has become increasingly difficult to manage the behavioral complexity of the features and their interactions. Redesign of old features to fit smoothly with the new features is scarcely ever a practical option. Eventually, the resulting complexity damages the quality and productivity of all phases of telecommunication software development.
In the pending utility application, “Telecommunication System and Method,” Ser. No. 09/034,681, filed on Mar. 4, 1998, which is incorporated by reference herein, the inventors introduced an architecture for managing the feature-interaction problem. The inventors presented a virtual architecture for telecommunication systems, which they called distributed feature composition (DFC), in which a feature corresponds to a component type; each telephone call is handled by building a configuration of instances of these components, according to the features to be applied to that particular call. The feature component instances communicate by featureless internal calls that are connected by the underlying architectural substrate. A new feature is specified by describing its corresponding component type (or occasionally, new feature is specified by describing its corresponding component type (or occasionally, two component types) and the rules for including the component instances into configurations.
DFC was designed in the context of a conventional telephony call for feature modularity, structured feature composition, analysis of feature interaction, and separation of service and transmission layers. Conventional telephony, however, deals only with a single medium (i.e. voice), a single network architecture (the PSTN), and very nearly a single device (the POTS telephone). Modern networks and devices pose new challenges: what was once a hard problem has become even harder, with the rapid proliferation of different types of devices, different network architectures (e.g., the Internet, Cable, Wireless, etc.), and multi-media (voice, text, video, etc.). Devices are evolving and proliferating more quickly than service software can be adapted. Service logic issues are often intertwined with transmission issues, which works against portability. Network providers have adopted a variety of service architectures and APIs, preventing interoperation even when interoperation is their goal. Incremental features have an unclear impact on previously developed features, making it difficult for knowledgeable and trusted programmers to implement enhancements (to say nothing of third party contributions, which are typically out of the question altogether).
Accordingly, it is an object of the present invention to remedy the above and other problems by enhancing and modifying DFC to accommodate open telecommunication systems, mobile telecommunication users, multimedia telecommunication services, unified messaging, and other aspects of modern telecommunication systems and services.